首页 > 编程语言 >javascript Promise

javascript Promise

时间:2022-12-12 14:23:46浏览次数:79  
标签:resolve console res javascript Promise error msg

Promise对象构造时需要一个参数,这个参数必须是一个函数。

let prom = new Promise(function (resolve, reject) {
	console.log("Run");
	// 进行费时间的异步操作
	...
	//
	
	if(success) {
		resolve(res_you_want_return)
	} else {
		reject(error_msg)
	}
}).then(function(res_i_want_to_get_when_success){
	console.log('OK')
	console.log(res_i_want_to_get_when_success)
	// 这里的 res_i_want_to_get_when_success 就是 res_you_want_return
}).catch(function(error_msg){
	console.error(error_msg)
	// 这里的error_msg就是上面的error_msg
});

当一个Promise对象被构造时,立即 在另外的线程中异步执行传入构造函数的函数。

在执行的同时,then方法也被执行,then的作用是在“成功回调列表”中添加一个函数,catch则是在“失败回调列表”中添加一个回调函数。添加回调函数并不意味着要执行回调函数,所以then/catch方法是即时结束的,不会阻塞主线程。等到resolve或者reject被执行后,再依次执行回调列表中的函数。

如何获取promise resolve后的原始数据?

promise resolve后会返回一个Promise对象,这个对象包含了原始数据,但是如何获取原始数据类型呢?

对于网络请求,再json()方法返回后,多用一次then方法即可:

function djc(params) {
    js = params.json()
    js.then(
        pa => console.log(typeof pa)
    )
}

fetch("https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=22575741&protocol=0,1&format=0,1,2&codec=0,1&qn=10000&platform=web&ptype=8&dolby=5&panorama=1", {
  "referrer": "https://live.bilibili.com/22575741",
  "referrerPolicy": "no-referrer-when-downgrade",
  "body": null,
  "method": "GET",
  "mode": "cors",
  "credentials": "include"
}).then(djc);

参见:https://blog.csdn.net/M_H5211/article/details/116160429

标签:resolve,console,res,javascript,Promise,error,msg
From: https://www.cnblogs.com/wangbingbing/p/16975917.html

相关文章

  • Javascript: Flotr2 Examples : data visualization with javascript
     <!doctypehtml><html><head><metacharset="utf-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1......
  • javascript-代码随想录训练营day27
    39.组合总和题目链接:https://leetcode.cn/problems/combination-sum/题目描述:给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中......
  • JavaScript中的eval()
    evalJavaScript中的eval()函数可以接受一个字符串作为参数,并将其中的内容视为好像在书写时就存在于程序中的这个位置的代码。换句话说,可以在你写的代码中用程序生成代码并......
  • 217行javascript代码实现五子棋游戏
    html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"c......
  • 你不知道的Javascript 上 1作用域是什么 1.1编译原理
    什么是编译程序中一段源代码经过parse(解析)、transform(转换)、generate(生成)三个阶段,这三个阶段统称为编译编译过程详解分词/词法分析解析1分词:Tokenizing分词......
  • JavaScript笔记 - 防抖与节流
    防抖与节流目录防抖与节流1.防抖2.节流在进行窗口操作或者输入框操作时,如果事件处理函数触发频率过高,会加重浏览器和服务器的负担。此时可以使用防抖和节流的方式来减......
  • Javascript的预解析机制
    JS的预解析机制想要理解js的解析机制,不妨先了解两个概念:变量声明提升与函数声明提升。声明提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。变量......
  • ES6笔记 - Promise对象
    Promise对象目录Promise对象1.Promise简介2.Promise的使用2.1创建Promise对象2.2Promise的执行时间2.3简写形式3.then方法4.catch方法5.all方法和race方法6.reso......
  • javascript-代码随想录训练营day25
    216.组合总和Ⅲ题目链接:https://leetcode.cn/problems/combination-sum-iii/题目描述:找出所有相加之和为n的k个数的组合,且满足下列条件:只使用数字1到9每个数字......
  • JavaScript奇淫技巧:隐写术
    JavaScript奇淫技巧:隐写术本文将用JavaScript实现“图片隐写术”。什么是隐写术?将文本或其它数据写入图片的技术,称为“隐写术”。比如下面这张图中,便隐藏着秘密信息,虽然看起......