/** * resolve 异步操作成功时调用的方法,并将异步操作的结果作为参数传递出去 * reject 异步操作失败时调用的方法,并将报错传递出去 */ var promise = new promise(function(resolve, reject) { var issuccess = true // 异步操作是否成功 if (issuccess) { resolve(data) } else { reject(error) } })
promise.then(function() { // 异步操作成功的处理,resolve状态 }, function() { // 异步操作失败的处理,reject状态 })
var timeout = function(ms) { var data = { list: array(0), msg: 'success', status: 200 } return new promise(function(resolve, reject) { settimeout(resolve, ms, data) }) } timeout(1000).then(function(data) { console.log(data) }, function(error) { console.log(error) })
function loadimageasync(src) { return new promise(function(resolve, reject) { var image = new image() image.src = src image.onload = function() { resolve(image) } image.onerror = function() { reject(new error(`加载图片失败,url:${url}`)) } }) } var url = 'http://n.sinaimg.cn/ent/transform/250/w160h90/20190226/jjhj-htptaqe5318645.jpg' loadimageasync(url).then((image) => { document.body.append(image) }, (err) => { console.log(err) })
function timeout(ms) { return new promise(function(resolve, reject) { settimeout(() => { resolve() }, ms) }) } async function asyncprint(ms) { await timeout(ms) console.log(`过去了${ms}毫秒,输出此语句`) } asyncprint(1000)
async function f() { return 'hello' }
f().then((data) => { console.log(data) // ‘hello’ })
async function f() { throw new error('出错了') } f().then((data) => { console.log('resolve data:', data) }).catch((err) => { console.log('reject error:', err) })
f().then( data => console.log(data), err => console.log(err) )
async function main() { try { const val1 = await firststep(); const val2 = await secondstep(val1); const val3 = await thirdstep(val1, val2); console.log('final: ', val3); } catch (err) { console.error(err); } }
如对本文有疑问, 点击进行留言回复!!
Parallels Desktop v15.1.4-47270 商业版下载 Mac安装Windows首选虚拟机
关于LPC824Lite开发板下载程序时提示"Invalid ROM Table"
MySQL 5.7 关于 JSON 类型的子集Key/Value获取方法分享
javascript从入门到跑路-----小文的js学习笔记(19)------- js的垃圾回收机制
网友评论