Promise.resolve有什么用处?

Promise.resolve()

有时需要将现有对象转为 Promise 对象,Promise.resolve()方法就起到这个作用。

如题,什么情况下需要将现有对象转换成Promise对象?谢谢!

阅读 5.2k
4 个回答

当你的数据不是promise实例,或者你不知道他是不是promise,而你又想把他当做promise实例来使用的时候

比如如果本地有数据data返回data,没有则请求

Promise.resolve(data ? data : getData()).then(...)

这是个语法糖吧


var foo = {
    then: (resolve, reject) => resolve('foo')
};
var resolved = Promise.resolve(foo);
相当于
var resolved = new Promise((resolve, reject) => {
    foo.then(resolve, reject)
});

resolved.then((str) => 
    console.log(str);//foo
)

跟楼上的差不多,不过我喜欢这么用:

// 如果本地有数据就不请求,没有就请求
const p = data ? Promise.resolve(data) : getData();
p
  .then(result => {
    // 数据处理
  });

用来创建微任务,更新视图的时候非常有用

Promise.resolve().then(() => console.log('456'));
console.log('123');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏