Вопрос был:
Как вернуть ответ от асинхронного вызова?
blockquote>, который может быть интерпретирован как:
Как сделать синхронный асинхронный код синхронным?
blockquote>Решение будет состоять в том, чтобы избежать обратных вызовов и использовать комбинацию Promises и async / await.
Я хотел бы привести пример для запроса Ajax.
(Хотя он может быть записан в Javascript, я предпочитаю писать его на Python и компилировать его в Javascript, используя Transcrypt . Это будет достаточно ясно.)
Позволяет сначала включить использование JQuery, чтобы
$
был доступен какS
:__pragma__ ('alias', 'S', '$')
Определить функцию, которая возвращает Promise, в этом случае вызов Ajax:
def read(url: str): deferred = S.Deferred() S.ajax({'type': "POST", 'url': url, 'data': { }, 'success': lambda d: deferred.resolve(d), 'error': lambda e: deferred.reject(e) }) return deferred.promise()
Использовать асинхронный код, как если бы он был синхронным:
async def readALot(): try: result1 = await read("url_1") result2 = await read("url_2") except Exception: console.warn("Reading a lot failed")
Вы не можете использовать альфа в основном цвете.
Изменить:
<item name="colorPrimaryDark">#4DFF9800</item>
<item name="colorPrimary">#4D607D8B</item>
To
<item name="colorPrimaryDark">#FF9800</item>
<item name="colorPrimary">#607D8B</item>
для api 21 в файле res/values-v21/style.xml
@ Konrad Krakowiak прав. Вы можете увидеть исходный код android.app.ActivityManager # TaskDescription.
/**
* Creates the TaskDescription to the specified values.
*
* @param label A label and description of the current state of this task.
* @param icon An icon that represents the current state of this task.
* @param colorPrimary A color to override the theme's primary color. This color must be opaque.
*/
public TaskDescription(String label, Bitmap icon, int colorPrimary) {
if ((colorPrimary != 0) && (Color.alpha(colorPrimary) != 255)) {
throw new RuntimeException("A TaskDescription's primary color should be opaque");
}
mLabel = label;
mIcon = icon;
mColorPrimary = colorPrimary;
}
Простое решение проблемы заключается в том, чтобы удалить непрозрачный, примененный к основному цвету в colors.xml
Когда непрозрачный применяется к основному цвету, цветовой код выглядит так: # aca688ff, где он например, «# F50057» (буквенно-цифровой код букв без непрозрачности).
Надеемся, что вышеупомянутое решение поможет вам устранить проблему.