首页 > 其他分享 >【JS基础】Promise.resolve()

【JS基础】Promise.resolve()

时间:2023-06-15 21:12:16浏览次数:44  
标签:resolve 展平 JS thenable Promise promise

Promise.resolve  静态方法将给定值“解析”为 Promise。

 

如果值是 Promise,则返回该 Promise;如果值是 thenable,返回的 Promise 会“跟随”这个 thanable 的对象,采用它的最终状态;否则,返回的 promise 将以此值完成。

此函数将类 promise 对象的多层嵌套展平。

 

注意:不要在解析为自身的 thenable 上调用 Promise.resolve,这将导致无限递归,因为它试图展平无限嵌套的 promise。

 

let thenable = {
     then: (resolve, reject) => {
          resolve(thenable)   
     }
}

Promise.resolve(thenable) // 这会造成一个死循环!!!

 

示例

const promise1 = Promise.resolve(123)

promise1.then((value) => {
    console.log(value) //123
})

 

 

参考:Promise.resolve() - JavaScript | MDN (mozilla.org)

标签:resolve,展平,JS,thenable,Promise,promise
From: https://www.cnblogs.com/zjy4fun/p/17484119.html

相关文章

  • 【JS错题总结】关于上下文
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><script>functionfunc1(){console.log(1,this.value)}......
  • js中各种时间格式的相互切换
    js中各种时间格式的相互切换https://jingyan.baidu.com/article/d2b1d102aa60941d7e37d4fc.html前端开发中,往往需要使用到各种时间格式,包括中国标准时间,国际标准时间,时间戳,年月日的时间等,这么多种的时间格式,就需要相互转换,本文旨在介绍各种时间格式的转化方法。工具/原料Hbuilde......
  • Js基础入门
    [Js基础入门-掘金](https://juejin.cn/post/7244734132322992187)浏览器执行JS简介浏览器分成两大部分渲染引擎和JS引擎渲染引擎:用来解析HTML与CSS,俗称内核,比如chrome浏览器的blink,老版本的webkitJS引擎:也称为JS解释器。用来读取网页中的JavaScript代码,对其处理后......
  • JS收藏
    2、在HTML页面中显示分数,可用如下格式:½¾⅓===============================================functionisCharsInBag(s,bag){vari;for(i=0;i<s.length;i++){varc=s.charAt(i);if(bag.indexOf(c)==-1)returnfalse;}returntrue;......
  • javascript eval和JSON之间的联系
    本文着重解释eval函数和JSON数据格式之间的联系以及一些细节上的问题。如果您想详细了解eveval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/EvalJSON:http://www.json.org/eval函数的工作原理eval函数会评估一个给定的含有JavaScr......
  • NodeJS系列(1)- 安装配置 NVM + NodeJS
    NodeJS(或Node.js) 是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。简而言之,NodeJS就是运行在服务端的JavaScript。NVM(NodeVersionManage),即NodeJS的版本管理工具。不同项目依赖不同的NodeJS版本......
  • 碎片化学习前端之JavaScript(JS 压缩图片)
    前言图片压缩是前端开发中常见的需求,目前前端主流的解决方案有:Canvas手动实现压缩以及第三方库压缩两种方案。Canvas手动实现压缩Canvas实现压缩主要原理是:将图片绘制到canvas上,然后通过调整canvas的宽高来实现压缩。functioncompressImage(file,maxWidth,maxHeight......
  • Compile Unity jslib in command
    CompileUnityjslibincommand(JinQing’sColumn,May.,2023)MyUnityprojecthasajslibfile,whichhasmanysyntaxerrors.ButUnitydoesnotreportthesejsliberrorslikecsfiles,untiltheWebGLbuildfailswithaerrorlikethis:Failedprocessstd......
  • Linux安装nodejs
    cd/opt/softwgethttps://cdn.npmmirror.com/binaries/node/v16.15.1/node-v16.15.1-linux-x64.tar.xztar-xvfnode-v16.15.1-linux-x64.tar.xzmvnode-v16.15.1-linux-x64nodejs-v16.15#建立软连接ln-s/opt/soft/nodejs-v16.15/bin/node/usr/bin/nodeln-s/o......
  • npm publish 发包报错npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/
    如果出现在发布的时候报这个错,说明你在package.json中登记的name已近被采用了。重名了,所以你得换一个。我们在发布一个包之前,最好拿着这个登记的name去搜一下,如果已近有了,那就要换一个。......