return 语句会终止函数的执行并返回函数的值。
但是只会执行当前函数,如果嵌套多层函数,每一层都需要return才可以
比如:
function test(){
return 1;
}
console.log(test());
// 1
function test(){
(function(){
return 1;
})();
}
console.log(test());
//undefined
//自执行也需要return
function test(){
return (function(){
return 1;
})();
}
//1
参考http://www.cnblogs.com/zmc/p/6916164.html
promise回调例子
<script src="https://cdn.bootcss.com/bluebird/3.5.1/bluebird.min.js"></script>//如果低版本浏览器不支持Promise,通过cdn这种方式
<script type="text/javascript">
function loadImg(src) {
var promise = new Promise(function (resolve, reject) {
var img = document.createElement('img')
img.onload = function () {
resolve(img)
}
img.onerror = function () {
reject('图片加载失败')
}
img.src = src
})
return promise
}
var src = 'https://www.imooc.com/static/img/index/logo_new.png'
var result = loadImg(src)
result.then(function (img) {
console.log(1, img.width)
return img
}, function () {
console.log('error 1')
}).then(function (img) {
console.log(2, img.height)
})
</script>
作者:浪里行舟
链接:https://www.jianshu.com/p/1f66aca680cb
來源:简书