如何取到js异步函数的回调函数里的值

JavaScript029

如何取到js异步函数的回调函数里的值,第1张

var bb = "" //声明一个变量//getval(参数1,回调函数名)//执行函数aa.val(0,getval)//回调函数getval(v){ bb=v//在这里赋值 alert(v)}

异步处理不用阻塞来等待处理完成,而是允许后续操作,直至其程序将处理完成,并回调通知此函数

那么在js中有如下几种异步方式:

示例1

var async=function(callback){

//read data

setTimeout(function(){

callback('data')

},1000)//1秒后回调

}

//使用

async(function(data){

alert(data)

})

示例2

var async=function(callback){

var xhr=new XMLHttpRequest()

xhr.open('get','.',true)

xhr.onreadystatechange=function(){

callback(xhr.readyStatus)

}

xhr.send()

}

async(function(data){

alert(data)

})

示例3

var async=function(callback){

var img=new Image()

img.onload=img.onerror=function(){

callback(img)

}

img.src='x.jpg'

}

async(function(data){

alert(data)

})

文章来自 https://www.cnblogs.com/rogerwu/p/10784236.html

async 函数返回一个 Promise 实例对象,可以使用 then 方法添加回调函数。

当函数执行时,一旦遇到 await 就会先返回,等到异步操作完成,再接着执行函数体内后面的语句

(1)、async 函数内部 return语句返回的值,会成为then方法回调函数的参数

(2)、async 函数内部抛出错误,会导致返回的 Promise对象变成reject状态,抛出的错误会被catch方法回调函数接收到

(3)、只有 async 函数内部的异步操作执行完,才会执行 then方法指定的回调函数

实际应用