精华内容
下载资源
问答
  • js 异步改成同步

    千次阅读 2019-10-22 14:50:06
    1.回调方式 export const getUserToken = (cb) => { ...async function(){ //注意`await`外层函数需要有`data `标识,表示里面是异步 const data = await getUserToken() console.log(data ) }

    1.回调方式

    export const getUserToken = (cb) => {
      setupWebViewJavascriptBridge((bridge) => {
        bridge.callHandler('fetchUserInfo', (data) => {
          // 这里通过回调函数处理
          cb && cb(data)
        });
      });
    };
    
    //调用方式
    
    getUserToken(fucntion(data){
        console.log(data)
        //这样就可以打印出dada
    })

    2.async/await方式

    export const getUserToken = () => new Promise((resolve, reject) => {
      setupWebViewJavascriptBridge((bridge) => {
        bridge.callHandler('fetchUserInfo', (data) => {
          resolve(data)
        })
      })
    })
    
    // 用法:
    
    async function(){ //注意`await`外层函数需要有`data `标识,表示里面是异步
        const data = await getUserToken()
        console.log(data )
    }
    展开全文
  • js方法异步同步解决

    千次阅读 2019-03-01 16:52:00
    很显然方法异步执行了,要改成异步可以用一个状态量来限制 <! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < meta name ="viewport" content ="width=device-width,...

    如下面代码,想要它按照调用执行顺序来输出1,2

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    </head>
    <body>
    <script>
    var adopt=false
     
     
    function a1(){
    setTimeout(function(){
    console.log(1)
    },1000)
     
    }
    function a2(){
    console.log(2)
    }
    function a3(){
    a1()
    a2()
    }
    a3()
    </script>
    </body>
    </html>

    但结果输出是2,1有时是1,2

    很显然方法异步执行了,要改成异步可以用一个状态量来限制

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    </head>
    
    <body>
      <script>
        var adopt = false
    
    
        function a1() {
          console.log(1)
          adopt = true
          return adopt
        }
    
        function a2() {
          console.log(2)
        }
    
        function a3() {
          a1()
          if (!adopt) {
            return
          }
          a2()
    
        }
        a3()
      </script>
    </body>
    
    </html>

    这样就是每次输出都是1,2

    这是我的片面测试,我对这个方法也不是十分确信,如果有发现错误或bug欢迎留言指正,谢谢!

     

    转载于:https://www.cnblogs.com/yck123/p/10457372.html

    展开全文
  • js异步方法转同步—将promise转为同步

    原异步方法:getHomeData(),返回一个promise

    getHomeData().then((response)=>{
        alert('success');
    }).catch(error=>{
        alert('fail');
    })
    

    利用ansyc和await转化为同步

    1. 首先利用ansyc声明一个异步函数
    2. 然后利用await让程序等待getHomeData()执行完成
    3. 用变量接收执行完成结果
    async reqData() {
    	let res = await getHomeData();
    	if(res.success){
    	    alert('success');
    	}
    },
    

    注意:

    1. await只能出现在anysic函数内部
    2. anysic也会返回一个promise
    展开全文
  • 这是index.js文件的代码 /* * @Descripttion: * @Author: yizheng.yuan * @Date: 2020-04-14 12:47:41 * @LastEditors: yizheng.yuan * @LastEditTime: 2020-04-14 13:12:12 */ var fs = require('fs'); // async-...

    1.需求:找到tom的个人资料
    2.已知:info.json有所有人的资料存放位置
    3.解决办法:读取info.json文件,根据tom名字找出他的个人资料具体的存放位置,然后再读出tom的资料返回去。

    必须要这样写,否则不行。
    废话少说,直接上代码,
    不懂的,评论问

    1.自己创建3个文件在这里插入图片描述

    创建 info.json

    [
        {
            "name": "tom",
            "file": "111.json"
        },
        {
            "name": "jerry",
            "file": "222.json"
        }
    ]
    

    创建 111.json

    {
        "name": "tom",
        "age": 15,
        "sex": "male"
    }
    

    创建 222.json

    {
        "name": "jerry",
        "age": 18,
        "sex": "female"
    }
    

    2.这是index.js文件的代码

    var fs = require('fs');
     // async-await用法
     
    async function getInfo(name){
        console.log('--fun a');
        var file = await b(name)
        var info = await c(file);
        console.log('info:',info)
    }
    
    function b(name){
       return new Promise((resolve,reject)=>{
        console.log('--fun b');
        fs.readFile('info.json',(err,rel)=>{
            console.log("err,rel:",err,rel.toString());
            if(err){
                reject(err)
            }
            let rels = rel.toString();
            let ret = JSON.parse(rels);
            let file;
            for(let i=0;i<ret.length;i++){
                if(ret[i].name==name){
                    file = ret[i].file;
                    break;
                }
            }
            console.log('file:',file)
            resolve(file)
        })
       })
    }
    function c(file){
        return new Promise((resolve,reject)=>{
            console.log('--fun c',file);
            fs.readFile(file,(err,rel)=>{
                
                console.log("err,rel:",err,rel.toString());
                if(err){
                    reject(err)
                }
                let rels = rel.toString();
                let ret = JSON.parse(rels);
                resolve(ret);
            })
        })
    }
    // 调用
    getInfo("tom")
    
    

    3.最后
    运行node index.js就好

    展开全文
  • JS循环中异步同步

    2021-03-30 13:39:07
    循环中异步同步应用场景方式一方式二 应用场景 在前端进行大文件上传的时候,往往会采用分片上传的方式,而分片上传每一个文件块都需要发送一个请求给后端,同时每一个文件块都要等前一个文件块的请求成功之后才能...
  • js异步同步

    2020-09-04 15:55:48
    function getSomething() {//js代码 var a = 0; return new Promise(function(resolve) { function() {//假如这个方法是一个异步执行 r = 2; resolve(r); } }); } async function compute() { var x = ...
  • 源起小飞是一名刚入行前端不久的新人,因为进到了某个大公司,俨然成为了学弟学妹眼中'大神',大家遇到js问题都喜欢问他,这不,此时他的qq弹出了这样一条消息"hi,大神在吗...
  • 控制 ajax 请求参数 async 属性的值可以切换成同步请求或异步请求。 同步请求:(false)同步请求即是当前发出请求后,浏览器什么都不能做, 必须得等到请求完成返回数据之后,才会执行后续的代码, 相当于是...
  • JS 异步调用转 同步调用。

    千次阅读 2019-11-17 16:06:38
    //同步调用最大等待时间。 //同步请求数据---->会导致浏览器被锁死。慎用!!!! function JSONPSync(url){ var dataWaiting = null; AjaxScriptLoad(url,function(data){ if(data == null) ...
  • 此方法是异步请求封装成同步请求,加上token验证,环境试用微信小程序,可以修改文件中的ajax,进行封装自己的,比如用axios等 成功码采用标准的 200 到 300 和304 ,需要可以自行修改 同步任务接入之后,每个...
  • 小程序javascript同步异步

    千次阅读 2018-07-23 14:35:11
    同步调用是一种阻塞式调用,调用另一段代码时,必须等待这段代码执行结束并返回结果后,代码才能继续执行下去。比如说,考试的时候,有人的做题方法是这样的,从头开始做,一旦遇到不会做的就会停在哪里,坚决不会跳...
  • TA远方分析,这是异步请求任务,并且是连续的,在当前主流的一些浏览器的运行环境下,使用await,async的写法是可以实现,可浏览器是不支持的,用Promise是可以的,第一次接触,会发现new Promise() 会在new ...
  • vue axios 异步同步请求

    千次阅读 2020-04-21 15:44:49
    export function get(){ var result ={}; axios.get(’/api/productList’).then((res)=>{ ...async await让异步变成了同步 export async function get(){ var result =await axios.get(’/a...
  • 原生js 同步&异步

    2020-02-11 13:58:56
    同步异步 代码的同步异步,标签的同步异步 代码的同步异步 1、代码的同步就是,从上往下顺序执行。 2、代码的异步就是,代码运行到此处,不等结果出来,就开始运行下面的内容。说明此处程序乃异步执行。 举个小...
  • Nodejs 让异步变成同步

    千次阅读 2018-05-02 15:08:57
    异步给我们带来的性能是明显的,但同时也给我们带了复杂的业务逻辑过程,特别请求依赖多的时候,下面我们来看看如何解决此类这样的问题。 使用方法 在这里我们信赖于co这个库。 npm install co --save #or ...
  • i++){ await getData(gameArr[j][i].gameCode) } }) } asyncCall() 在forEach中使用async报错,应该是forEach不知道await它迭代的异步函数 改成下面: function getData(data) { return accountApi({code:data}) } ...
  • js同步转换异步

    2020-01-17 09:46:27
    setTimeout(function(){ // doSomething }, 0); 未完待续。。。
  • Promise 异步同步 .then()

    万次阅读 2018-12-20 20:50:42
    创建一个api.js export const login= function() { return new Promise(function (resolve, reject) { wx.login({ success: function (res) { resolve(res) }, fail: function (res) { ...
  • 异步变成同步

    2018-01-07 22:02:00
    //迭代器就是强行把异步的函数,变成同步的函数 (function demo(i){ if(i == files.length){ console.log(box); return; } fs.stat("./txt/"+files[i],function(err,stats){ //检测成功之后 if(stats....
  • 如何将Ajax请求从异步改为同步

    千次阅读 2019-06-11 17:12:12
    Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: “some.PHP”, async: false }).responseText; 或者在全局设置Ajax属性 $.ajaxSetup({ async: false }); 再用...
  • JS 同步异步之Promise

    2020-05-27 10:27:44
    同步方法在promise示例中变成异步执行: [url=][/url] console.log(1);let p =newPromise(resolve => {console.log(2);resolve();console.log(3);});console.log(4);p.then(() => {console.log(5);});console...
  • 在实际使用中,我们经常会用的Ajax(异步加载,在不刷新整个网页的前提下对网页部分内容进行更新) 使用时,偶尔会遇上需要从一个接口中得到一个数组和数据对应的id,在另一个接口上再得到数据,最初写法如下...
  • 1.使用async await 2 先使用promise然后使用.then可以按照同步的方式执行下一个操作 promise和async和await详情
  • 父组件调用子组件的表单验证方法是异步的 // 子组件的方法 validateForm(){ this.$refs.jsonEditor.getRef("form").validate((valid, hints) => { return {valid: valid, hints: hints} }) } // 父组件调用...
  • /*上面的代码不是最佳实践 他把两个没有先后顺序的操做 强行变成同步操做 其实他们的工作可以同时进行 所以我们需要并发执行的实例; 上面的代码就可以写成 */ async function created() { // 他们都会返回一个...
  • 4.通过同步的 fs.readdirSync 来替换 function getFileList ( filePath ) { var files = fs . readdirSync ( filePath ) ; var listArr = [ ] ; files . forEach ( filename => { listArr...
  • js 异步同步

    2019-09-30 11:52:12
    在项目中有些逻辑或者请求依赖另一个异步请求,大家常用的方法是回调函数。现在有个高大上的解决方案:await async 。 async 是“异步”的简写,而 await 可以认为是 async wait 的简写。所以应该很好理解 async ...
  • 写个方法,所有数据都可以调用这个方法 setStateAsync(state){ return new Promise((resolve) this.setState(state,resolve) )} } 配上使用方法 ...class OptionDemo extends React.Component { ...
  • 由回调函数、Promise到async/await...最基础的JavaScript就是同步的,单线程,自上而下运行。 通俗的话说:同步就相当于是 当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。当服务端做完了
  • Javascript语言的执行环境是"单线程"(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,056
精华内容 4,422
关键字:

js异步改成同步