Async load inside replace function

后端 未结 2 1408
余生分开走
余生分开走 2021-01-06 01:49

I am working with replacements in Javascript. I did something like this:

var replacedText = originalText.replace(regex, function(value, i) { 
    return valu         


        
2条回答
  •  再見小時候
    2021-01-06 02:37

    When you have a callback that demands a synchronous return value, you cannot use an async operation inside that callback to get that value. The async operation (by definition) will finish sometime later AFTER the callback has returned so the results of the async operation are just not available to return from the callback and there is no way to make JS wait for an async operation.

    I don't follow exactly what your code is trying to do, but judging from your words, it sounds like you want to load an HTML template and use that in the replace operation. There are some different ways to approach that problem.

    For example, you could do this with two passes.

    1. The first pass doesn't actually change your string, instead it just builds a list of templates that are needed.

    2. Then, you load all the templates in that list.

    3. Then, when all the templates you will need are loaded, you can then do your replace, using the already loaded templates to do the synchronous replacement you planned.

提交回复
热议问题