Promise.resolve有什么用处?

Promise.resolve()

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

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

阅读 1k
评论
    4 个回答
    • 12.6k

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

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

    Promise.resolve(data ? data : getData()).then(...)
      • 3.3k

      这是个语法糖吧

      
      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
      )
      
        • 12.2k

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

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

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

          Promise.resolve().then(() => console.log('456'));
          console.log('123');
            撰写回答

            登录后参与交流、获取后续更新提醒

            相似问题
            推荐文章