关于vue-router的Promise和resolve

看官方文档的时候,异步加载动态组件这部分看不明白..

clipboard.png
请问Promise和resolve指的是什么?有没有demo帮助理解..
还请大家解答时尽量好懂些..谢谢

阅读 30.3k
2 个回答

这就和vue没什么关系,单纯是对Promise的理解问题,来给你个小例子:

'use strict';

//这个方法,我们说她返回了一个promise
//但实际上,我们期待的是一个userInfo对象
//无奈该函数是异步的,无法立刻返回userInfo对象
//所以返回了一个Promise作为“承诺”
var getUserInfo = function() {
    return new Promise(function(resolve) {
        setTimeout(function() {
            var user = {name: 'Hanmeimei', age: 31};
            resolve(user);
        }, 3000);
    });
};

var user = getUserInfo();//获取返回值

//通过这个方法我们就能看出返回值是个Promise
console.log(Object.prototype.toString.apply(user));//[object Promise]

//那如何才能拿到真正的userInfo对象呢?
//下面代码就可以
user
    .then(function(userInfo) {
        
        //之所以这里拿到了userInfo,那是因为上面我们在3秒之后
        //resolve了真正的userInfo对象
        console.log(userInfo);//{ name: 'Hanmeimei', age: 31 }
    });

关于Promise,看文档:Promise

新手上路,请多包涵

Promise.resolve(value)方法返回Promise使用给定值解析的对象。

var promise1 = Promise.resolve([1, 2, 3]);

promise1.then(function(value) {
console.log(value);
// expected output: Array [1, 2, 3]
});
返回Array [1, 2, 3]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题