JS的全球价值没有改变

时间:2018-09-11 18:01:54

标签: javascript

我的JS代码表现得很奇怪。我使用 Dim myFSO As FileSystemObject Dim xFolder As Scripting.Folder Dim FSO As Object Dim f As File Dim sDFolder As String sDFolder = "W:\Destination\" Set FSO = CreateObject("Scripting.FileSystemObject") Set myFSO = New FileSystemObject Set xFolder = myFSO.GetFolder("C:\Users\amzubaid\Desktop\ISIN- Compiler Temp") For i = 1 To xFolder.Files.Count FSO.CopyFile ("C:\Users\Tom\TestFolder\" & f), sDFolder, True MsgBox "Specified File Copied Successfully", vbInformation, "Done!" DostuffHere on each file one by one before deleting On Error Resume Next Kill "W:\Destination\*.*" On Error GoTo 0 Next i End Sub 来获取一些JSON数据。像这样正常工作:

$.tGET

如果我在let UserCssLocal = "dd"; $.tGET('style',{username: text},function(r){ UserCssLocal = r.css; }); 内添加window.alert(UserCssLocal);,则效果很好;但是如果在$.tGET之后执行此操作,它将继续显示“ dd”。我该如何解决?我感到困惑!

1 个答案:

答案 0 :(得分:0)

  

该如何解决?我感到困惑!

您从$ .tGET内部调用了它,正如您提到的。该函数是异步的,程序流程在调用$ .tGET的函数之前继续进行。

您可以使用一些“糖”使它看起来更像您期望的那样。

async function getIt(){
  return new Promise(resolve, reject){
  $.tGET('style',{username: text},function(r) {
     resolve(r.css)
   });
  }
}

async function doIt(){
  UserCssLocal = await getIt()
  window.alert(UserCssLocal)
}
相关问题